GlobalAssemblyInfo.cs和强大的命名

Dav*_*d M 7 .net c# configuration-management

我在我的解决方案的根目录中有一个GlobalAssemblyInfo.cs文件,我有类似下面的条目来启用输出程序集的强命名.

#pragma warning disable 1699
[assembly : AssemblyKeyFile("..\\keyfile.snk")]
#pragma warning restore 1699
Run Code Online (Sandbox Code Playgroud)

这种方法有两个缺点.首先,不推荐使用AssemblyKeyFileAttribute,因此为了避免编译警告,我需要您在上面看到的编译指示行.其次,我要么将所有项目保持在相对于根的相同深度以使用相对路径,要么使用绝对路径,这决定了其他用户机器上的结账位置(以及持续集成服务器/构建代理) .

有没有人有比这更好的解决方案,除了通过项目文件中设置强命名的每个项目?

Ric*_*ard 1

出于充分的原因(信息泄漏),不推荐使用这些密钥签名属性,这是走该项目路线的另一个原因。

如果您有很多项目,则可以通过录制的宏来设置它们,甚至可以直接操作 .csproj 文件(确保首先从 VS 卸载它们)。