【发布时间】:2018-10-27 02:28:38
【问题描述】:
我正在尝试在我的 Project.csproj 文件中配置 MSBuild 目标。使用以下命令调用名为“Test”的目标:
msbuild.exe /target:Test
但是,我不知道如何更改此目标的 AssemblyName(原始程序集名称为 MyProject)。我的代码如下所示:
<Target Name="Test">
<PropertyGroup>
<PublishUrl>D:\PublishLocation\ClickOnce Setup\</PublishUrl>
</PropertyGroup>
<MSBuild Projects="$(ProjLocation)\$(ProjectName).csproj" Properties="ProductName=$(ProductName) (Test); AssemblyName=MyProjectTest; PublishUrl=$(PublishUrl)" Targets="Publish" />
<ItemGroup>
<SetupFiles Include="$(ProjPublishLocation)\*.*" />
<UpdateFiles Include="$(ProjPublishLocation)\Application Files\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(SetupFiles)" DestinationFolder="D:\PublishLocation\ClickOnce Setup\" />
<Copy SourceFiles="@(UpdateFiles)" DestinationFolder="D:\PublishLocation\ClickOnce Setup\Application Files\%(RecursiveDir)" />
</Target>
如果我从代码中删除AssemblyName=MyProjectTest;,它可以正常工作。如果我像上面那样运行它,我会收到以下错误:
“C:\Users\...\MyProject\MyProject.csproj” (测试目标) (1) -> “C:\Users\...\MyProject\MyProject.csproj” (发布目标) (1:2) ->
(CoreCompile 目标)->
Models\SessionModel.cs(207,51):错误 CS1528:预期;或 = (不能 在声明中指定构造函数参数)[ C:\Users\...\MyProject\MyProject.csproj](……还有很多,差不多一样)
更新
我在构建输出中发现了更多,也许更有趣的警告:
“C:\Users\...\MyProject\MyProject.csproj” (快速目标)(1)-> “C:\Users\...\MyProject.csproj” (发布目标)(1:2)->(ResolveAssemblyReferences 目标)->
C:\程序文件 (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): 警告 MSB3277: 发现不同版本的冲突 无法解析的相同依赖程序集。这些参考 当日志详细程度设置为时,冲突会在构建日志中重新列出 详细的。 [C:\Users\...\MyProject\MyProject.csproj]
值得一提的是,我在发布位置发布了旧版本,其中程序集名称没有更改。这会导致我看到的冲突吗...?
【问题讨论】:
标签: c# visual-studio msbuild