我有一个使用VS2010创建的c#.Net 4.0项目,现在正在使用VS2012进行访问。使用msbuild执行文件系统发布配置文件
我试图从本网站只发布所需的文件传送到目标位置(C:\建立\ MyProject的[文件])
我的文件结构: ./ProjectRoot/MyProject .csproj的 ./ProjectRoot/Properties/PublishProfiles/FileSystemDebug.pubxml
我正在通过的MSBuild如下:
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe ./ProjectRoot/MyProject.csproj/p:DeployOnBuild = true /p:PublishProfile=./ProjectRoot/Properties/PublishProfiles/FileSystemDebug.pubxml
下面是FileSystemDebug.pubxml的XML
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>C:\builds\MyProject\</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
</PropertyGroup>
</Project>
产生的行为是:
- 一个zip文件在这里创建:./ProjectRoot/obj/Debug/Package/MyProject.zip
- 没有被部署到
<publishUrl>C:\builds\MyProject\</publishUrl>
WTF - 创建的压缩文件是猪早餐和全时不需要对应用程序文件。
当我运行此发布配置文件通过Visual Studio的文件夹在* 的C创建:\建立\ MyProject的*并包含我想确切的假象。
如何从msbuild得到这个简单的结果?
为了向后兼容,存在'Condition =“false”的条件导入。 VS2010要求此导入存在,即使由于虚假情况而被跳过。如果你再看一眼,那么你会看到csproj包含另一个'$(VSToolsPath)\ WebApplications \ Microsoft.WebApplication.targets'的导入,它解析为当前版本的Visual Studio的目标文件。 – 2016-03-04 08:54:12
注意'$(MSBuildToolsVersion)'在正确的VS版本帐户中的战略使用:' '。这对我VS2015更新1工作。 –
2016-03-17 03:53:46