重命名.NET 2.0可执行文件

时间:2011-03-04 10:54:51

标签: c# .net visual-studio .net-assembly

在更改后期构建事件的C#.NET 2.0可执行文件名时,有没有人知道任何问题,因为可执行文件是强名称并且有嵌入式清单?此外,可执行文件在被打包到安装程序之前将由第三方签名。

我知道任何关联的.config文件也需要重命名以反映新的可执行文件名。

我是否正确地猜测最好的解决方案是更改项目属性中的程序集名称,而不是重命名可执行文件名?问题是Visual Studio与条件程序集名称不兼容。 (即将条件属性添加到.csproj中的标记)

2 个答案:

答案 0 :(得分:2)

VS加载项目一次,然后将其存储在内存中。如果要从VS构建两个程序集,可以添加 AfterBuild 目标并调用MSBuild以再次构建程序集,但使用不同的参数:

<ProperttyGroup Condition="'$(BuildAgain)'==''">
     <!-- Default parameters to VS -->
     <AssemblyName>Name1,Default</AssemblyName>   
<ProperttyGroup>

<ProperttyGroup Condition="'$(BuildAgain)'=='true'">
     <!-- Overrided parameters -->
     <AssemblyName>Name2.Custom</AssemblyName>   
<ProperttyGroup>

<Target Name="AfterBuild"
        Condition="'$(BuildAgain)'==''">
     <MSBuild Projects="$(MSBuildProjectFullPath)"
              Properties="BuildAgain=true;Configuration=$(Configuration);Platform=$(Platform)"
              Targets="Rebuild" 
</Target>

答案 1 :(得分:1)

强力命名exe没有任何实际好处。强大命名dll的好处是,有人不能用他们自己的恶意版本替换它(你可以把它放在GAC中)。除非你在另一个项目中引用你的exe,好像它是一个dll(这很奇怪),你不需要强名它。

相关问题