Azz*_*rel 5 .net csproj .net-framework-version visual-studio
免责声明:这是.Net Framework特有的问题,在 .Net Core 中不会发生。
我目前正在开发一个项目,该项目作为一个更大项目的插件。我想将项目的输出路径设置到较大项目的 AddIn 文件夹,然后使用项目的调试属性启动较大的项目,这样我就不必每次都手动复制并附加到项目。
我拥有的任何参考都是与较大的项目共享并从其管理的,这意味着我没有(也不应该)将它们复制到 AddIn 文件夹。
我将此答案中的代码包含到我的 .csproj (VS 19/新格式)
<ItemDefinitionGroup>
<Reference>
<Private>False</Private>
</Reference>
<ProjectReference>
<Private>False</Private>
</ProjectReference>
</ItemDefinitionGroup>
Run Code Online (Sandbox Code Playgroud)
排除项目和常规引用,但在 .Net Framework 中,我的 Nuget 包中的所有.dll也会复制到输出路径。我也在寻找一种方法来禁用它,但还没有找到。
有没有办法阻止Nuget 包中的.dll被复制到 .Net Framework 中的输出路径?
看看这个github 帖子。除此之外,@Maytham 完美地涵盖了它:
为什么不将项目的 nuget 包发布到 AddIn 中?这有帮助吗?
他是对的。那应该有帮助。但是,回顾一下 github 帖子:
您可以关闭每个包的运行时访问:
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" ExcludeAssets="runtime" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
或者你可以对所有包执行此操作:
<ItemDefinitionGroup>
<PackageReference ExcludeAssets="runtime" />
</ItemDefinitionGroup>
Run Code Online (Sandbox Code Playgroud)
完成后,使用不同的输出路径创建一个 CopyNuGetDependency (或任何您想要的名称)项目。确保它引用所有 NuGet 包 - 但不包含
ExcludeAssets. 它唯一负责将 NuGet 包直接复制到输出。
这应该可以解决所有问题。
| 归档时间: |
|
| 查看次数: |
1185 次 |
| 最近记录: |