相关疑难解决方法(0)

Windows批处理:没有换行的echo

什么是Linux shell命令相当于echo -n在输出结尾处抑制换行符的Linux shell命令?

想法是在循环内写入同一行.

windows cmd newline batch-file

213
推荐指数
8
解决办法
23万
查看次数

无痛的本地开发,同时也引用NuGet包

我正在尝试发布和使用版本化的类库的NuGet包,同时避免了本地开发的麻烦.以下是Visual Studio解决方案布局示例:

| Libraries
  | LibraryA
  | LibraryB
  | LibraryC
| Applications
  | ApplicationD
  | ApplicationE
Run Code Online (Sandbox Code Playgroud)

这是一个包含共享类库和多个应用程序的单一解决方案.目前,应用程序对类库的引用是本地解决方案引用.

我想要做的是将库(A,B,C)发布为版本化的NuGet包,然后由应用程序根据需要引用它们(D,E).这允许对共享库的更改独立于对已部署的应用程序的更新.如果没有这个,更改一个库可能会导致二进制文件在十几个或更多应用程序中发生变化,所有这些都在技术上需要进行测试.这是不可取的,使用NuGet进行版本控制可以解决这个问题.

但是,我们要说我想同时更新LibraryA和ApplicationD的内容.为了在切换到NuGet之后执行此操作,我将不得不对LibraryA进行更改,提交它们,等待创建包,告诉ApplicationD更新其对LibraryA的引用,然后在ApplicationD中进行测试或开发.这比使用本地解决方案引用同时处理两者要复杂得多.

有什么更好的方法来获得我的共享类库的版本化NuGet包的健壮性,同时即使它跨越多个项目和应用程序也保持开发简单?我发现的唯一其他解决方案都涉及太多开销或头痛,例如不得不在NuGet包和本地项目之间不断更改ApplicationD的引用.

编辑:为了澄清前提,这个问题假设如下:

  • 架构(解决方案和项目组织)无法进行重大组织
  • 共享库将以非平凡的频率发生变化
  • 更改共享库不能强制更新任何应用程序
  • 应用程序可以引用不同版本的共享库

c# visual-studio nuget nuget-package visual-studio-2013

41
推荐指数
4
解决办法
6273
查看次数

从Visual Studio 2013创建nuget包

我在VS2013上安装了NuGet.Tools.2013.vsix.我喜欢从Manager Console创建一个nuget包,但是当我尝试时,我得到一个menagem:

术语"nuget"未被识别为cmdlet,函数,脚本文件或可操作程序的名称.检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试.

我不知道我做错了什么.

可以使用管理器控制台创建包,或者我需要使用其他东西.

visual-studio nuget

14
推荐指数
3
解决办法
2万
查看次数

如何在构建后事件中获取版本号

我想使用post-build事件自动创建一个nuget包,然后将其复制到我们网络上的共享文件夹,类似这样(版本号1.0.0.0.在MyLib.nuspec文件中指定):

nuget.exe pack "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib.1.0.0.0.nupkg" \\folder\subfolder\NuGetPackages
Run Code Online (Sandbox Code Playgroud)

这有效,但现在我想更新这个脚本,以便它也包括程序集版本,但我无法在构建后事件中获得程序集版本.我需要这样的东西:

nuget.exe pack -Version $(AssemblyVersion) "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib." + $(AssemblyVersion) + ".nupkg" \\folder\subfolder\NuGetPackages
Run Code Online (Sandbox Code Playgroud)

但是$(AssemblyVersion)变量不存在......有什么想法吗?

.net .net-4.0 visual-studio-2010 assemblyversions post-build-event

13
推荐指数
1
解决办法
8984
查看次数

在 WiX 中向构建后事件添加版本

我是 WiX 的新手,在实现我认为应该非常简单的事情时遇到了一些困难。我在 Visual Studio 2013 中使用 WiX v3.8。总的来说,我想要实现的目标是拥有一个可以更改安装程序版本的地方,并且这将在整个 WiX 项目中传播。

在 WiX 项目的项目属性 =>“构建”选项卡 =>“定义预处理器变量”文本框中,我有: ProjectVersion=3.6.7.0

但是,当失败时,我遇到问题的是构建后事件:

copy !(TargetPath) "C:\Development\Release Builds\MyProject\$(TargetName) $(var.ProjectVersion)$(TargetExt)"

我一直在互联网上搜索,但无法找到解决我的问题的方法。也许我只是不知道该问什么?

我的问题是:如何使这个构建后活动正常进行?我究竟做错了什么?我想做的就是能够轻松更改 ProjectVersion 变量或构建后事件中的另一个此类变量。

wix visual-studio

1
推荐指数
1
解决办法
4085
查看次数