问题标签 [copy-local]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1741 浏览

c# - VS 2015 复制到项目引用的输出 GAC 引用,无论复制本地设置如何

我已经为这种行为提出了一个连接问题。

VS 2015GAC无论复制本地设置如何,都复制到项目引用的 输出引用。VS 2010不使用相同的解决方案和项目,尊重复制本地属性。到目前为止,我发现的唯一解决方法是Microsoft.Web.Services3.dll在项目 A 中添加对的直接引用并将其设置为复制 local = false。

重现步骤:

实际的:

Microsoft.Web.Services3.dll正在复制到项目 A 的输出目录。

预期的:

Microsoft.Web.Services3.dll没有被复制到项目 A 的输出目录中。

知道为什么会这样吗?MSDN 文档明确指出GAC不应将依赖项复制到输出并尊重VS 2010这一点。

0 投票
1 回答
557 浏览

visual-studio - Microsoft.Owin.Host.HttpListener 没有被复制到引用项目的构建输出中

我从同一解决方案中的另一个项目引用 Visual Studio 解决方案中的一个项目。被引用的项目(项目 B)具有 Microsoft.Owin.Host.HttpListener nuget 包,因此其中引用了 .dll。正在构建引用项目 B(项目 A)的项目。输出文件夹获取项目 B 中引用的所有 dll,Microsoft.Owin.Host.HttpListener.dll 除外,即使它被标记为 Copy Local - true。

Microsoft.Owin.Host.HttpListener.dll 是迄今为止我遇到的唯一一个拒绝复制到项目 A 的构建输出作为 MSBuild 的 _CopyFilesMarkedCopyLocal 步骤的一部分,无论设置如何。

我试图将它添加到 app.config 中的条目中,但没有帮助。

我已经安排了展示引用问题的示例项目并将其上传到 GitHub此处

您可以随意使用这些设置。

在提出这个问题之前,我已经查看了 Stackoverflow 中的相关问题,它们没有得到回答或不相关。

请给我一个提示,如何将 .HttpListener.dll 与其他 .dll 一起复制到预期的引用项目输出中。

0 投票
1 回答
185 浏览

reference - 发布解决方案时我需要排除参考

我们在解决方案中使用的一个参考在我们部署代码时会导致问题。

参考是 System.Management.Automation。当我们发布解决方案时,我们使用 EncryptionWizard 3.4.13(政府版)存档文件,然后将存档文件刻录到 DVD 并将其带到单独的位置并在生产服务器上展开。归档和扩展功能对文件进行加密和解密。

在展开过程中,当它到达 System.Management.Automation.dll 时,它会停止解密。

EncryptionWizard 确实无能为力,但我们应该能够进行更改以解决该问题,因此我们希望排除正在发布的 System.Management.Automation。

我们希望使用 Visual Studio 2017 中的发布功能而不是使用 MSBuild 来完成此操作。

我在网上找到了一些对我不起作用的代码。在我的项目的 csprog 文件中,我输入了以下代码:

<None Update="System.Management.Automation" CopyToPublishDirectory = "Never"/>

然后我尝试了这个:

<None Update="bin\System.Management.Automation.dll"> <CopyToPublishDirectory>Never</CopyToPublishDirectory> </None>

当我查看 bin 文件夹时,System.Management.Automation.dll 总是在那里。

如果我将 System.Management.Automation 引用的 Copy Local 属性设置为 false,则我无法在 Visual Studio 中启动我的 Web 应用程序而不会出现错误,但是我的部署问题已解决。

我希望能够将 Copy Local 设置为 true,但从已发布的文件中排除 System.Management.Automation.dll 文件。

0 投票
0 回答
313 浏览

.net - System.Buffers NuGet 包 >=4.4.0 在针对 .NET 4.6.1 到 4.7.0 时将约 100 个系统 dll 复制到输出目录

我正在使用 Visual Studio 2017。当我创建一个针对 .NET 4.5、4.5.1、4.5.2、4.6 或 4.7.2 的新控制台应用程序并添加 NuGet 包 System.Buffers 版本 4.4.0 或 4.5.0 时我构建的输出目录中只有一个 DLL,即 System.Buffers dll。当我以 4.7.1 为目标并重建它时,它里面有 17 个系统 dll。如果我以 .NET 4.6.1、4.6.2 或 4.7 为目标,则输出目录中有 101 个系统 dll,即使我将 System.Buffers 的“复制本地”设置为 false,也会发生这种情况。所有默认引用的默认值 Copy Local = false 以及 Microsoft.CSharp、System、System.Core、System.Data、System.Data.DataSetExtension、System.Net.Http、System.Xml 和 System.Xml。林克。当我安装 System.Buffers 4.3.0 时,不会发生 100 个系统 dll 出现在输出目录中的问题。

我想以 .NET 4.6.2 为目标,并想使用最新的 MongoDB 驱动程序,该驱动程序需要最新的 DNSClient,它需要 System.Buffers <=4.4.0,但我不明白为什么我现在在输出中需要 101 个额外的系统 DLL目录,有没有办法在不改变 .NET 目标的情况下解决这个问题?

System.IO.dll 的 MSBuild 输出示例:

1>从项目“{redacted}\ConsoleApp2\ConsoleApp2\ ConsoleApp2.csproj”(目标“ResolveReferences”取决于它):

1>使用程序集“Microsoft.Build.Tasks.Core,Version=15.1.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”中的“ResolveAssemblyReference”任务。

1>任务“解决AssemblyReference”

1> 统一主引用“System.IO, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。

1> 在“C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netfx 中使用此版本而不是原始版本“4.0.0.0” .force.conflicts.dll”,因为 AutoUnify 为“真”。

1> 解析的文件路径为 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.dll"

1> 在搜索路径位置“{HintPathFromItem}”找到参考。

1> 此引用不是“CopyLocal”,因为至少有一个源项目将“私人”设置为“假”,并且没有源项目将“私人”设置为“真”。

1> 此参考的 ImageRuntimeVersion 是“v4.0.30319”。

...

1>从项目“{redacted}\ConsoleApp2\ConsoleApp2”文件“C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets”中的目标“_CopyFilesMarkedCopyLocal” \ConsoleApp2.csproj”(目标“CopyFilesToOutputDirectory”取决于它):

1>使用程序集“Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”中的“复制”任务。

1>任务“复制”

1> 将文件从“C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.dll”复制到“bin\Debug \System.IO.dll”。

0 投票
1 回答
121 浏览

wpf - .NET Core 3.0 WPF“复制本地”程序集问题

我已将当前的 WPF 应用程序切换到 .NET Core 3.0。一切正常,除了一件事!我添加了一个对我的应用程序的项目引用,并将“复制本地”属性设置为“否”(我想将其用作嵌入式)。现在,我的应用程序正在编译,似乎正在运行,而不是停止。我创建了一个新的 .NET Core 3.0 WPF 项目,只链接了一个也是新项目,将引用和复制本地设置为否,它是相同的。

它是一个错误还是项目文件中需要一些额外的参数?任何想法?

谢谢,佐尔坦

0 投票
0 回答
132 浏览

c# - 如何停止自动生成我引用的 dll 文件?(视觉工作室)

当我构建我的 Visual C# 项目时,它不仅会生成 .exe 文件,还会生成此项目中引用的 .dll 文件。我试图找到在哪里打开/关闭它,我找不到它。我怎样才能停止生成?