小编fer*_*der的帖子

你能编译C#所以它在运行时不需要.NET Framework吗?

是否有可能强制C#编译器将所有引用的调用拉出框架并将它们打包成dll甚至单个可执行文件?

我喜欢用C#编写快速的"一次性"应用程序,但是我不想在目标机器上准备好后再安装整个框架.

.net c#

29
推荐指数
5
解决办法
2万
查看次数

MSBuild - 从命令行获取目标

有谁知道如何获取从MSBuild命令行调用的TARGET(/ t)的名称?可以调用几种类型的目标,我希望在向用户发出通知时使用该属性.

例:

msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV
Run Code Online (Sandbox Code Playgroud)

我想访问ApplicationDeployment我的.Proj文件中的目标词.

我可以访问一个属性吗?有任何线索如何做到这一点?

编辑:我不想也要传递一个属性来获得这个.

更新:这基于使用MSBuild脚本的部署脚本.我的构建服务器不用于部署代码,仅用于构建.构建服务器本身具有可以选择的构建通知.

msbuild build-automation automated-deploy

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

如何在Chocolatey包中将参数传递给安装程序?

我从MSI创建了一个包.但是,我需要传递自定义参数.

/i SERVER='xx.yyy.com
Run Code Online (Sandbox Code Playgroud)

以下是我通过阅读choco命令规范尝试的一些事情,但没有一个工作.

> choco install foo -y --params "SERVER='xx.yyy.com'"
> choco install foo -y --params "SERVER=xx.yyy.com"
> choco install foo -y --params "SERVER= xx.yyy.com"
Run Code Online (Sandbox Code Playgroud)

如何将安装选项传递给安装程序?

chocolatey

12
推荐指数
2
解决办法
1万
查看次数

您使用哪些工具进行自动构建/自动部署?为什么?

您使用哪些工具进行自动构建/自动部署?为什么?

你推荐什么工具?

deployment build-automation

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

PowerShell - 当覆盖与该函数同名的cmdlet名称时,如何在函数中调用cmdlet?

所以我有一个名为update-name的cmdlet,我没有权限进行更改.

我创建了一个名为update-name的函数(与cmdlet同名).如何从具有相同名称的函数中调用cmdlet?

我尝试过一些东西,但似乎都没有.

function update-name {
param([string] something)
  #call cmdlet update-name here
}
Run Code Online (Sandbox Code Playgroud)

当它只是功能时,有一种方法可以做到:

$unBackup = 'DefaultUpdateName'
if(!(Test-Path Function:\$unBackup)) {
    Rename-Item Function:\Update-Name $unBackup
}

function update-name {
  & $unName
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果它是CmdLet则不起作用.

powershell function cmdlet redefinition

9
推荐指数
2
解决办法
2831
查看次数

在软件上写作和说话会让你成为更好的程序员吗?

您是否认为撰写关于软件(即拥有博客)和谈论软件(和概念)会让您成为更好的程序员?

blogs

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

如何重新创建PowerShell $ profile变量?它在自定义主机中是空的

如果使用System.Management.Automation(SMA)实现自定义PowerShell主机,则所有自动变量都是可用的,除非它似乎$PROFILE是空的.怎么会重新创建呢?

它始终在UserProfile +中\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1吗?或者我是否需要担心它在其他地方?

澄清一下,我只关心CurrentUserCurrentHost个人资料.

细节

鉴于此PowerShell脚本:

Write-Output "_Profiles_" 
Write-Output "CurrentUserCurrentHost = '$($Profile.CurrentUserCurrentHost)'"
Write-Output "CurrentUserAllHosts = '$($Profile.CurrentUserAllHosts)'"
Write-Output "AllUsersCurrentHost = '$($Profile.AllUsersCurrentHost)'"
Write-Output "AllUsersAllHosts = '$($Profile.AllUsersAllHosts)'"
Run Code Online (Sandbox Code Playgroud)

针对系统PowerShell运行它具有以下输出:

_Profiles_
CurrentUserCurrentHost = 'C:\Users\rob\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'
CurrentUserAllHosts = 'C:\User\rob\Documents\WindowsPowerShell\profile.ps1'
AllUsersCurrentHost = 'C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1'
AllUsersAllHosts = 'C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1'

使用自定义C#PowerShell主机(System.Management.Automation.Host.PSHost实现)运行它显示:

_Profiles_
CurrentUserCurrentHost = ''
CurrentUserAllHosts = ''
AllUsersCurrentHost = ''
AllUsersAllHosts = ''

背景

https://github.com/chocolatey/choco/issues/667

这已经在PowerShell v3/System.Managment.Automation(SMA)v3中进行了测试,但它可以在其他PowerShell版本中轻松证明.

c# powershell

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

RegisterAll与注册上下文(又名Func <T>)的能力在哪里?

我可以使用instanceCreator上下文(aka Func<T>)注册一个注册项,但似乎与RegisterAll没有相同的允许.

TL; DR - 找到接受的答案并查看更新2(或跳至此问题的更新3)

这就是我想要做的:

container.RegisterAll<IFileWatcher>(
    new List<Func<IFileWatcher>>
    {
        () => new FileWatcher(
            @".\Triggers\TriggerWatch\SomeTrigger.txt",
            container.GetInstance<IFileSystem>()),
        () => new FileWatcher(
            @".\Triggers\TriggerWatch\SomeOtherTrigger.txt",
            container.GetInstance<IFileSystem>())
    });
Run Code Online (Sandbox Code Playgroud)

我尝试添加基于先前Stack Overflow答案的扩展,以进行多次注册,但似乎最后一个获胜:

public static class SimpleInjectorExtensions
{
    public static void RegisterAll<TService>(this Container container,
        IEnumerable<Func<TService>> instanceCreators) 
        where TService : class
    {           
        foreach (var instanceCreator in instanceCreators)
        {
            container.RegisterSingle(typeof(TService),instanceCreator);
        }

        container.RegisterAll<TService>(typeof (TService));
    }
}
Run Code Online (Sandbox Code Playgroud)

我也很好奇为什么首先需要RegisterAll存在.这是我用过的第一个依赖注入容器中的第一个依赖注入容器.其他只允许您针对服务注册多个类型,然后通过调用Resolve<IEnumerable<TService>>(autofac)或GetAllInstances<TService>(SimpleInjector和Ninject)加载它们.

更新

为了更清楚,我正在尝试构建一个项目列表,我可以将其传递给处理每个单独项目的组合.它遇到与上述相同的问题,因为它属于一组任务,所有任务都根据计划,触发器和事件(Rx)运行.暂时删除寄存器并删除其他一些东西:

container.Register<ITask>(() => new FileWatchTask(
    container.GetInstance<IFileSystem>(),
    container.GetInstance<IMessageSubscriptionManagerService>(),
    configuration,
    container.GetAllInstances<IFileWatcher>()));
Run Code Online (Sandbox Code Playgroud)

您可以看到我正在抓取以前注册的文件观察者的所有实例.

我需要知道的是这个问题的一个简单的解决方法以及它何时实现(如果没有,为什么它不会).我也会接受,鉴于Simple …

.net c# dependency-injection ioc-container simple-injector

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

为什么C#和VB有泛型?他们提供了什么好处?泛型,FTW

来自维基百科:

通用编程是一种计算机编程风格,其中算法是根据待指定的后续类型编写的,然后在需要时作为参数提供的特定类型实例化,并由1983年出现的Ada开创.这种方法允许编写常用功能或类型,仅在使用时操作的类型集不同,从而减少重复.

泛型提供了定义稍后指定的类型的能力.您不必将项目转换为类型以使用它们,因为它们已经被键入.

为什么C#和VB有泛型?他们提供了什么好处?使用它们有什么好处?

还有哪些语言也有仿制药?

.net c# vb.net generics

6
推荐指数
2
解决办法
1968
查看次数

如何为puppet安装全局自定义提供程序?

我想使用巧克力木偶提供程序作为Windows的包源.我的理解是我必须将文件保存到{module}/lib/puppet/provider/package/chocolatey.rb.如果我只是在一个特定模块中使用它,那似乎没问题.但是,如果我想让它可用于我的所有模块呢?

linux windows configuration puppet chocolatey

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

如何使用puppet脚本安装MS Office时传递产品密钥?

我想使用puppet脚本从ms office的完整设置安装一个单词,excel和outlook,并且只从脚本传递产品密钥.

如果somone可以告诉我命令行命令这样做也会有所帮助.

谢谢

windows puppet ms-office

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

如何巧克力安装python2到自定义路径?

我正在使用Chocolatey安装Python 2.7.11 ,它安装到C:\tools\python2:

choco install python2 -y
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以让我安装Python C:\Python27

python chocolatey

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