c# – 如何在一个项目中创建不同的DLL?
发布时间:2020-12-16 01:30:01 所属栏目:百科 来源:网络整理
导读:我有一个问题,我不知道它是否可以解决.我在Visual Studio 2005上有一个C#项目,我想根据预处理器常量创建不同的DLL名称.我现在拥有的是预处理器常量,两个snk文件和两个程序集的guid.我还创建了两个配置(调试和调试预处理器),并使用适当的snk和guid完美编译. #
我有一个问题,我不知道它是否可以解决.我在Visual Studio 2005上有一个C#项目,我想根据预处理器常量创建不同的DLL名称.我现在拥有的是预处理器常量,两个snk文件和两个程序集的guid.我还创建了两个配置(调试和调试预处理器),并使用适当的snk和guid完美编译.
#if PREPROCESSOR_CONSTANT [assembly: AssemblyTitle("MyLibraryConstant")] [assembly: AssemblyProduct("MyLibraryConstant")] #else [assembly: AssemblyTitle("MyLibrary")] [assembly: AssemblyProduct("MyLibrary")] #endif 现在,我必须将两个程序集放入GAC.添加第一个组件没有问题,但第二个组件没有问题. 如何从一个Visual Studio项目创建两个或更多不同的程序集? 有可能我忘了在“AssemblyInfo.cs”中包含一个新行来根据预处理器常量更改DLL名称吗? 解决方法
以下是Post-Build事件的示例:
if "$(ConfigurationName)" == "Debug" goto Debug if "$(ConfigurationName)" == "Release" goto Release goto End :Debug del "$(TargetDir)DebugOutput.dll" rename "$(TargetPath)" "DebugOutput.dll" :Release del "$(TargetDir)ReleaSEOutput.dll" rename "$(TargetPath)" "ReleaSEOutput.dll" :End 将DebugOutput.dll和ReleaSEOutput.dll更改为正确的文件名.您可以更改“Debug”和“Release”以支持其他配置,并添加部分以支持更多配置. 该脚本将创建两个具有不同文件名的dll;要创建两个不同的AssemblyNames,您有两个选项. 程序集名称构建为follows: Name <,Culture = CultureInfo> <,Version = Major.Minor.Build.Revision> <,StrongName> <,PublicKeyToken> ' ' 因此,您必须更改文化信息,版本或强名称. 两个最简单的选项是: >更改装配版本: #if SOME_COMPILER_SYMBOL [assembly: AssemblyVersion("1.0.0.0")] #else [assembly: AssemblyVersion("1.0.0.1")] #endif >更改密钥文件 – 使用sn工具和AssemblyInfo.cs创建两个密钥文件: #if SOME_COMPILER_SYMBOL [assembly: AssemblyKeyFile("FirstKey.snk")] #else [assembly: AssemblyKeyFile("SecondKey.snk")] #endif 就GAC而言,这两个选项都会产生两个不同的程序集 – 因为它比较了完整的程序集名称,而不是“简单”名称. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容