我有一个MVC网站,我使用参数
通过命令行发布msbuild.exe /p:DeployOnBuild=true /p:PublishProfile=Test MyProject.csproj
MyProject
项目引用了另一个Web应用程序项目MyReferencedProject
。这用于将共享Razor视图和其他共享代码存储到另一个网站。 (RazorGenerator推荐将项目类型设置为Web应用程序,以便在使用Razor视图时获得智能感知)此项目的功能类似于类库,不应发布。
问题在于,当我运行上面的命令时,我收到的错误是它无法找到Test.pubxml
的{{1}}:
C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web \ Microsoft.Web.Publishing.targets(4352,5):error:PublishProfile的值设置为'测试',期望在&C; \ Projects \ MyReferencedProject \ Properties \ PublishProfiles \ Test.pubxml'中找到文件。但它无法找到。
如何在没有尝试发布MyReferencedProject
的情况下运行msbuild发布MyProject
?
我发现我可以通过为此项目添加MyReferencedProject
发布配置文件来解决此问题,但这意味着我必须设置一些位置以便在代码发布时放置代码,这真的不应该和根本没有生成。
答案 0 :(得分:1)
尝试将命令行更改为:
msbuild.exe /p:DeployMyProject=true /p:PublishProfile=Test MyProject.csproj
然后在任何MyProject.csproj
语句之前将以下属性组添加到Import
:
<PropertyGroup>
<DeployOnBuild Condition="'$(DeployMyProject)'!=''">$(DeployMyProject)</DeployOnBuild>
</PropertyGroup>