为了账号安全,请及时绑定邮箱和手机立即绑定

Microsoft Azure Functions Nuget 包阻止 NET 库打包到 Nuget

Microsoft Azure Functions Nuget 包阻止 NET 库打包到 Nuget

C#
摇曳的蔷薇 2022-07-10 10:39:42
我有一个以 net462 为目标的 NET 库项目,其中包含一个Microsoft.NET.SDK.FunctionsNuget 包。问题是当我将我的项目打包到 Nuget 库中时,除了没有创建 .nupkg 之外,一切都成功了(清理、恢复、构建、打包)。如果我注释掉相关代码并去掉 Nuget 引用,我打包时会生成一个 nupkg 文件。我似乎遇到了这个问题:IN GITHUB也许?有问题的包 - https://www.nuget.org/packages/Microsoft.NET.Sdk.Functions我的直接问题是 - 这是一个可能的功能吗?你能防止你的包裹被打包进 Nugets 吗?我怎么会知道。或者换句话说,这种情况(GitHub问题中描述的情况)是否可能?可能出了什么问题?谢谢!
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

我刚刚遇到了同样的问题,dotnet pack没有为.csproj使用该包的文件生成Microsoft.Functions.SDK包。

dotnet pack允许您提供MSBuild受尊重的参数,即使它没有出现在他们的文档中,因此您可以nuget通过在命令行上执行以下操作来强制生成包:

dotnet pack --configuration Release -property:IsPackable=true

函数 SDK 中似乎有一些代码我没有花时间去追踪强制该IsPackable标志为 false 的代码,无论.csproj.

如果您将来遇到这些问题,您可以通过将(将详细程度设置为调试)dotnet附加到命令行命令来查看命令的诊断。-v=d


查看完整回答
反对 回复 2022-07-10
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

第一步:打开项目文件夹

//img1.sycdn.imooc.com//62ca3c140001985e04020538.jpg

第二步:打开cmd

//img1.sycdn.imooc.com//62ca3c22000198a605840367.jpg

第 5 步:您应该看到一个指向您的项目而不是解决方案目录的 cmd


//img1.sycdn.imooc.com//62ca3c2c0001bbba06940347.jpg

第 6 步:复制并粘贴流动的命令

    PowerShell -Command "Get-ChildItem $dir | Where { $_.Name -match '.csproj'} | Select -Expand Name | out-file -encoding ASCII projectname"


    SET /p projectname=<projectname


    PowerShell -Command "(Get-Content -path ..\packages\Microsoft.NET.Sdk.Functions.1.0.24\build\netstandard1.0\Microsoft.NET.Sdk.Functions.Build.targets -Raw) -replace 'DependsOnTargets="""RunResolvePublishAssemblies"""', '' | Set-Content -Path  ..\packages\Microsoft.NET.Sdk.Functions.1.0.24\build\netstandard1.0\Microsoft.NET.Sdk.Functions.Build.targets"


    SET MSBuild_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin


    SET PATH=%MSBuild_PATH%;%PATH%


    MSbuild %projectname% /t:Clean;Rebuild /p:Configuration=Release


    PowerShell -Command "Get-ChildItem -Path .\bin\Release\bin -Recurse | Copy-Item -Destination .\bin\Release "


    PowerShell -Command "if(!(Test-Path -Path 'nuget.exe')){(new-object System.Net.WebClient).DownloadFile('https://dist.nuget.org/win-x86-commandline/latest/nuget.exe','nuget.exe')}"


    NuGet.exe pack %projectname% -Prop Configuration=Release -MSBuildPath "%MSBuild_PATH%"


    start .

第 7 步:你应该找到你的 nupkg 文件

//img1.sycdn.imooc.com//62ca3c3d0001662a03410771.jpg

查看完整回答
反对 回复 2022-07-10
  • 2 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号