몇 가지 추가 작업을 수행하는 게시 프로필을 사용하여 명령 줄에서 게시중인 웹 프로젝트가 있습니다 (일부 파일 및 폴더 제외, 다른 파일 게시, 프로젝트).MSBuild는 FileSystem 대신 명령 줄에서 명령 줄을 통해 웹 프로젝트를 게시합니다.
2 대의 컴퓨터 (A와 B)가 두 개 있는데, 마우스 오른쪽 단추로 클릭> 게시 ...에서 Visual Studio로 올바른 게시 프로필을 선택하면 올바르게 작동합니다.
역사적으로, 두 시스템에, 그것은 또한 다음과 같은 명령 줄을 사용했다 : 그러나 지금, 기계 B가 제대로 게시되지
msbuild MyProject.csproj /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=myProfile /v:n
.
게시 프로필은 상단에 <WebPublishMethod>FileSystem</WebPublishMethod
으로 구성되어 있지만 로그에서는 명백한 이유없이 Package
게시 유형을 시도하고 있습니다. 예상대로 그냥 Package
을하고 있기 때문에
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>..\Production</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
<ExcludeFoldersFromDeployment>Content;Scripts;Pages</ExcludeFoldersFromDeployment>
<ExcludeFilesFromDeployment>index-dev.html;index.html;debug.html;JSLintNet.json;Gruntfile.js;package.json;packages.config;publishall.bat;publishapi.bat</ExcludeFilesFromDeployment>
<BuildDependsOn>
$(BuildDependsOn);
RunGrunt;
PublishApi;
</BuildDependsOn>
</PropertyGroup>
<Target Name="RunGrunt">
<Message Text="Running grunt production..." />
<Exec Command="grunt production" />
</Target>
<Target Name="PublishApi">
<Message Text="Publishing API..." />
<Exec Command="publishapi" />
</Target>
</Project>
은, 어떤 파일이 이제까지 publishUrl
디렉토리에 표시되지 않습니다 :
여기에 전체 공개 프로필입니다. 다시 말하지만 게시 프로필은 오른쪽 클릭 게시를 사용하여 VS2013에서 올바르게 작동합니다.
이**ValidatePublishProfileSettings**:
Validating PublishProfile(myProfile) settings.
그러나 기계 B에 표시되지 않는 : 시스템 A의 로그에서
나는이 발췌를 얻을. 이**WebFileSystemPublish**:
Creating directory "..\Production".
Copying obj\Release\Package\PackageTmp\cache.manifest to C:\SVN\Trunk\src\Web Sites\MyProject\..\Production\cache.manifest.
Copying obj\Release\Package\PackageTmp\Global.asax to C:\SVN\Trunk\src\Web Sites\MyProject\..\Production\Global.asax.
Copying obj\Release\Package\PackageTmp\Web.config to C:\SVN\Trunk\src\Web Sites\MyProject\..\Production\Web.config.
Copying obj\Release\Package\PackageTmp\bin\MyProject.dll to C:\SVN\Trunk\src\Web Sites\MyProject\..\Production\Blithe.Web.Collect.dll.
나중에 시스템 B의 로그에서, 위의 자리에, 그것은 포함 :
**Package**:
Invoking Web Deploy to generate the package with the following settings:
$(LocalIisVersion) is 7
$(DestinationIisVersion) is 7
$(UseIis) is True
$(IisUrl) is <<<some url>>>
$(IncludeIisSettings) is False
$(_DeploymentUseIis) is False
$(DestinationUseIis) is False
유일한 차이점 나중에 포함 된 시스템 A의 로그에
두 컴퓨터 사이에서 생각할 수있는 것은 'Windows Azure SDK for .NET (VS2013) - 2.3'의 컴퓨터 B (문제 기계)에 업데이트를 설치 한 것입니다. 어떻게 그리고 왜 이것이 이것을 깨뜨릴 수 있었는지 모든 아이디어?
/p:PublishProfileRootFolder="Properties\PublishProfiles"
을 위에서 설명한 here과 같이 추가하려고 시도했지만 작동하지 않았습니다.