我有一个我们通过ClickOnce发布的项目;这个项目包含一些用于本地化的DLL。但是你知道这些DLL没有直接引用到项目中。它们位于项目的separeted文件夹中。
由于代码分析警告,我们将这些文件的“构建操作”属性配置为“无”。 但是如果在Build Action = None时发布,那么您猜测Visual Studio不会将它们包含在包中。因此,在我们开始发布之前,我们将其Build Action属性更改为Content。
但是现在,我想通过Team Build 2010发布;所以Team Build将创建ClickOnce包。但是我找不到改变文件的Build Action属性的方法。
有没有可行的方法?
答案 0 :(得分:0)
我使用Condition属性找到了自己的解决方案。
项目文件根据其Build Action属性包含解决方案项。 例如, 如果文件的Build Action = None,则项目文件包含它,如此
<None Include="MyRequiredAssembly.dll" />
否则,如果文件的Build Action = Content,它看起来像这样
<Content Include="MyRequiredAssembly.dll" />
所有这些文件都被分组到<ItemGroup>
,而ItemGroup标记具有Condition属性。
所以我决定使用Condition来改变这样的Build Action属性。
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Publish|AnyCPU'">
<Content Include="MyRequiredAssembly.dll" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Publish|AnyCPU'">
<None Include="MyRequiredAssembly.dll" />
</ItemGroup>
我希望这对你也有帮助。