【问题标题】:Referencing different assemblies in different configurations在不同的配置中引用不同的程序集
【发布时间】:2010-11-05 10:49:09
【问题描述】:

在询问之前,我阅读了thisthis 线程。那里没有帮助。

我正在使用 Visual Studio 2003(这是我的雇主强制要求的),但我想对更高版本的 VS 的回答也可能有用。

所以,假设我有两个 .Net 项目:A - 这是一个类库和 B - 这是一个应用程序。在 B 我单击 Add Reference,转到 Projects 选项卡并选择 A。在这种情况下,B 的调试版本将引用 A 的调试版本,而发布版本的B 将使用 A 的发布版本。现在想象一下,我只有两个程序集——aD.dll 和 a.dll,而不是项目 A。我没有任何创建这些的项目。我想做的是强制 B 的 Debug 版本引用 aD.dll,B 的发布版本引用 a.dll
问题 1:我该怎么做?

当我想引用某个 dll 时,我会转到 add reference -> Browse 并浏览我的 dll。但我需要指定的不是完整路径,而是相对路径。
问题 2:我该怎么做?

这是紧急情况,在此先感谢 :)

【问题讨论】:

    标签: c# .net visual-studio reference


    【解决方案1】:

    您无法通过 IDE 执行此操作,但您可以通过手动破解 .csproj 文件来执行此操作:

    如果您已经获得了对 a.dll 的引用:

    <Reference Include="a">...</Reference>
    

    ...然后尝试如下一对条件:

    <Reference Condition="'$(Configuration)' == 'Release'" Include="a">...</Reference>
    <Reference Condition="'$(Configuration)' == 'Debug'" Include="aD">...</Reference>
    

    编辑:以下是您可以在 &lt;Reference&gt; 元素中放入的内容的说明:http://msdn.microsoft.com/en-us/library/bb629388.aspx

    【讨论】:

    • 非常感谢。在这种情况下,我可以指定像 Include = "../../Assemblies/Debug/aD.dll" 之类的相对路径吗?
    • Include= 是 DLL 的名称(不带扩展名),但您可以在 &lt;HintPath&gt; 元素中添加您喜欢的内容。 IDE 应该已经提供了&lt;HintPath&gt;
    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2012-08-30
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多