我有一个C#项目,代表将部署到GAC的程序集。因此,我想为此程序集生成一个策略库。
目前我在AL
或AfterBuild
内使用AfterCompile
目标进行操作:
<PropertyGroup>
<PolicyDllName>$(TargetDir)$(TargetName).policy.dll</PolicyDllName>
<PolicyConfigName>$(ProjectDir)\policy.config</PolicyConfigName>
</PropertyGroup>
<AL LinkResources="$(PolicyConfigName)"
Platform="$(Platform)"
KeyFile="$(ProjectDir)MyKey.snk"
OutputAssembly="$(PolicyDllName)"
Version="%(AssemblyInfo.Version)">
<Output TaskParameter="OutputAssembly" ItemName="FileWrites"/>
</AL>
它工作正常,我的策略程序集已生成。
但是,虽然在输出文件夹中生成,但它不是项目输出的一部分。
例如,当我从另一个项目引用我的项目时,DLL被复制到第二个项目的bin
文件夹中,但策略程序集不是。
所以我的策略程序集只是一个被删除到项目输出文件夹的文件,MSBuild不会将其视为项目输出的一部分。
另一个例子:当我从一个Web项目引用我的项目然后执行Publish时,策略程序集不包含在已发布的Web站点中,而项目&#34; main&#34;汇编是。
问题是:如何做到这一点&#34;额外的组装&#34; (或任何额外的文件)项目的输出的一部分?