SmartAssembly conditionial includes or Version in AssemblyName
hama28
Posts: 1 New member
Hi,
We have the following situation: We have a C# project using a third party library which comes with different assemblies for each version. For instance a ThirdParty.dll for Version 21.0.0.0, a ThirdParty.dll for Version 22.0.0.0 and so on.
Our project needs to be build for every Version of this ThirdParty.dll. In msbuild we control that with build parameters and wildcards in .csproj files. For instance if we build the project with parameters like /p:ThirdPartyVersion="21", all " $(ThirdPartyVersion)" fields in the .csproj are replaced with "21".
In SmartAssembly.com however, we found no way of parameterizing this via a console command.
As an alternative approach, we tried to duplicate entries for every version such that SmartAssembly automatically finds the currently desired one:
Here, however "Version=XX" seems not to be part of AssemblyName. SmartAssembly only accepts the entry if we remove the version from the assembly name, but then we loose the ability to specify different includes for different versions...
What is the recommended approach to solve this issue?
We have the following situation: We have a C# project using a third party library which comes with different assemblies for each version. For instance a ThirdParty.dll for Version 21.0.0.0, a ThirdParty.dll for Version 22.0.0.0 and so on.
Our project needs to be build for every Version of this ThirdParty.dll. In msbuild we control that with build parameters and wildcards in .csproj files. For instance if we build the project with parameters like /p:ThirdPartyVersion="21", all " $(ThirdPartyVersion)" fields in the .csproj are replaced with "21".
In SmartAssembly.com however, we found no way of parameterizing this via a console command.
As an alternative approach, we tried to duplicate entries for every version such that SmartAssembly automatically finds the currently desired one:
<Assembly AssemblyName="ThirdParty, Version=21.0.0.0, Culture=neutral, PublicKeyToken=XXYYZZ" HintPath="aa\yy\ThirdParty.dll"> <Merging /> <Embedding /></Assembly>
<Assembly AssemblyName="ThirdParty, Version=22.0.0.0, Culture=neutral, PublicKeyToken=XXYYZZ" HintPath="aa\zz\ThirdParty.dll"> <Merging /> <Embedding /></Assembly>
Here, however "Version=XX" seems not to be part of AssemblyName. SmartAssembly only accepts the entry if we remove the version from the assembly name, but then we loose the ability to specify different includes for different versions...
What is the recommended approach to solve this issue?