在C#工程中設置Reference的相對路徑
羅朝輝 (http://kesalin.cnblogs.com/)
本文遵循“署名-非商業用途-保持一致”創作公用協議
要在C#工程中根據不同的項目配置使用不同的 reference,而該 reference 路徑是相對路徑,這時我們可以修改 csproj 項目文件,在其中添加 reference 路徑,如下示例:
<ItemGroup>
<Reference Include="System" />
....
<Reference Include="log4net" Condition="'$(Configuration)'=='Debug'">
<HintPath>..\..\..\..\..\Output\bin_debug\log4net.dll</HintPath>
</Reference>
<Reference Include="log4net" Condition="'$(Configuration)'=='Release'">
<HintPath>..\..\..\..\..\Output\bin\log4net.dll</HintPath>
</Reference>
</ItemGroup>
Notes:
log4net 在.Net 4.0 中會報異常:
Inheritance security rules violated while overriding member: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being
可以在
log4net 工程中的 assembly(文件 AssemblyInfo.cs)里增加如下一句,重新編譯即可:
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]