当我尝试打包我的 MVC 项目时 (
NuGet.exe pack
),我得到:
NuGet.exe : Access to the path '...' is denied.
我的 MVC 解决方案的
content
和 script
文件夹中的所有文件都属于这种情况。如果我删除所有这些文件上的只读标志 NuGet.exe
就能够创建 NuGet 包。
为什么我必须删除只读标志?还有别的办法吗?
我正在使用 TFS,它在源代码控制下的所有文件上指定只读标志。
我正在跑步:
我正在使用安装 NuGet 包时获得的
NuGet.exe
NuGet.CommandLine,位于 http://nuget.org/packages/NuGet.CommandLine。
显然,您需要为其访问的文件设置
ReadOnly=false
尝试以管理员身份运行它。
在打开 VisualStudio 的情况下执行
nuget restore
后,我遇到了这个问题:git clean -fd
目录被标记为删除,虽然删除了几个文件,但 packages/
文件夹本身并不像 VisualStudio 具有 packages/
那样
文件打开。 一旦我关闭 VisualStudio 并重新运行
.nupkg
,它就会删除
git clean
目录,然后 nuget 就能够正确恢复所有内容。我能够通过逐一更新软件包来解决该问题。选择检查每个依赖项并更新它。一旦依赖项更新,我会选择另一个,有时会导致相同的错误,在这种情况下我会选择另一个,直到我的所有包都成功更新。
在我的情况下,Nu-Get 软件包必须按特定顺序更新。
希望这对那里的人有帮助
packages/
最近被修改(错误地),因此 git 开始在构建服务器上签出
*.gitattributes
并将所有 nuget.exe
转换为内部的 LF
,使其不可执行。