小编cec*_*eco的帖子

Visual Studio 2010说,在更改源文件后,Build失败且没有错误

我有一个包含一些项目的Visual Studio 2010解决方案.我可以使用Build - > Build Solution或Build - > Build MyCompany.MyProduct.MyProject成功构建.构建完成后,按CTRL + F5并成功运行启动项目.这按预期工作.

在我更改源文件后,保存它然后再次构建(使用Build - > Build Solution或Build - > Build MyCompany.MyProduct.MyProject)它成功构建.我仍然可以按CTRL + F5并运行启动项目.这再次按预期工作.

问题出现在以下场景中:更改源文件后,保存并直接按CTRL + F5,然后Visual Studio 2010显示BUILD FAILED并且没有错误.它并没有启动我的启动项目(当然).

我错过了什么吗?

build visual-studio-2010 visual-studio

63
推荐指数
4
解决办法
5万
查看次数

使用异步等待实现具有同步和异步API的库以实现相同的功能

我有一些关于如何在库中提供相同功能的同步和异步实现的问题.我先问他们然后提供下面的示例代码(实际上相当多,但事实上它很简单).

  1. 有没有办法避免违反DRY原则?考虑的实现JsonStreamReader.Read,JsonStreamWriter.Write,JsonStreamWriter.Flush,ProtocolMessenger.Send,ProtocolMessenger.Receive和他们的异步版本.

  2. 在对同一方法的同步和异步版本进行单元测试时,是否有办法避免违反DRY原则?我正在使用NUnit,虽然我猜所有框架在这方面应该是相同的.

  3. 应该如何实施的方法返回TaskTask<Something>考虑Take 1Take 2变体ComplexClass.SendComplexClass.Receive?哪一个是正确的,为什么?

  4. 考虑到不知道库将在何处使用(控制台应用程序,Windows窗体,WPF,ASP.NET),总是在库中包含.ConfigureAwait(false)后是否正确await

以下是我在第一个问题中提到的代码.

IWriter并且JsonStreamWriter:

public interface IWriter
{
    void Write(object obj);
    Task WriteAsync(object obj);
    void Flush();
    Task FlushAsync();
}

public class JsonStreamWriter : IWriter
{
    private readonly Stream _stream;

    public JsonStreamWriter(Stream stream)
    {
        _stream = stream;
    }

    public void Write(object obj)
    {
        string json = JsonConvert.SerializeObject(obj); …
Run Code Online (Sandbox Code Playgroud)

.net c# dry async-await

10
推荐指数
2
解决办法
870
查看次数

如何更新除mongodb中指定的文档字段之外的所有文档字段

我提出一个简单的模型:

public class UserDocument
{
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }

    public string DisplayName { get; set; }

    public List<string> Friends { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用最新的C#驱动程序,它能够使用C#对象替换文档,该对象将自动更新其所有字段.问题是我想更新除用户朋友之外的所有字段,因为它是包含与其他文档的对象关系的字段.当然,我可以手动更新我想要更新的每个字段,这里只有两个.

但这个例子很简单,只是为了说明我的观点.实际上,字段更多,更新每个字段会更难.这将需要每条线路使用一条Set运营商.此外,必须以与更新自动生效相反的方式支持新添加的字段.

有没有办法实现这一点 - 只需指定排除字段列表自动更新所有字段?

.net c# mongodb mongodb-.net-driver

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

AvalonDock DockingManager不加载布局

为了保存和加载我的布局,我遵循了这里的说明,但它对我不起作用.

我在XAML里面有这个MainWindow:

<StackPanel Orientation="Vertical">
    <Button Content="Save"
            Click="SaveButton_Click"/>
    <Button Content="Load"
            Click="LoadButton_Click"/>
    <ad:DockingManager x:Name="myDM">
        <ad:LayoutRoot>
            <ad:LayoutPanel>
                <ad:LayoutDocumentPane>
                    <ad:LayoutDocument Title="Document">
                        <TextBox />
                    </ad:LayoutDocument>
                </ad:LayoutDocumentPane>
            </ad:LayoutPanel>
            <ad:LayoutRoot.LeftSide>
                <ad:LayoutAnchorSide>
                    <ad:LayoutAnchorGroup>
                        <ad:LayoutAnchorable Title="Left">
                            <TextBox/>
                        </ad:LayoutAnchorable>
                    </ad:LayoutAnchorGroup>
                </ad:LayoutAnchorSide>
            </ad:LayoutRoot.LeftSide>
        </ad:LayoutRoot>
    </ad:DockingManager>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

这些是按钮点击的事件处理程序:

private void SaveButton_Click(object sender, RoutedEventArgs e)
{
    XmlLayoutSerializer layoutSerializer = new XmlLayoutSerializer(myDM);
    using (var writer = new StreamWriter("test"))
    {
        layoutSerializer.Serialize(writer);
    }
}

private void LoadButton_Click(object sender, RoutedEventArgs e)
{
    XmlLayoutSerializer layoutSerializer = new XmlLayoutSerializer(myDM);
    using (var reader = …
Run Code Online (Sandbox Code Playgroud)

c# wpf xml-serialization avalondock

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

NetFx45WebLink和NetFx45RedistLink有什么区别

我用WiX 3.7编写了一个首先安装.net 4.5的引导程序,然后是我的应用程序的MSI:

<Chain>
  <PackageGroupRef Id="NetFx45Redist"/>
  <MsiPackage Id="MainAppPackage"
              After="NetFx45Redist"
              SourceFile="..\bin\Debug\MyApp.msi"/>
</Chain>
Run Code Online (Sandbox Code Playgroud)

WiX的文件说,NetFx45Redist是一个独立的设置,同时NetFx45Web为网络设置.在我使用设置为Id的引导程序NetFx45Redist构建之后,与使用NetFx45Web指定的Id 构建它时相比,它具有相同的大小.我很好奇所以我下载了WiX源(v3.7).我惊讶地发现这两个PackageGroup元素之间几乎没有什么区别.

DownloadUrlNetFx45Webhttp://go.microsoft.com/fwlink/?LinkId=225704,而一个NetFx45Redisthttp://go.microsoft.com/fwlink/?LinkId=225702.根据RemotePayload\@Size属性NetFx45Web是1005568字节并且NetFx45Redist是50352408字节.

我希望NetFx45Redist在我的引导程序中包含.net 4.5设置,不需要下载.我觉得这是错的.PackageGroup我应该使用哪个,以及2个下载的.net 4.5安装之间有什么区别?

.net wix wix3 bootstrapper wix-extension

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

如何将自定义样式应用于AvalonDock

有谁知道如何在AvalonDock 2.0中更改LayoutAnchorable和LayoutDocument标题的字体属性?我希望能够应用我的WPF应用程序中随处使用的样式以保持一致性.

wpf avalondock

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

用于在自定义缓冲区中接收以避免在每个帧/消息上创建新字节数组的 NetMQ API 是什么?

我有以下代码:

while (!isCancellationRequested)
{
    byte[] frameBytes = socket.ReceiveFrameBytes();
    MyData data = new MyData();
    data.Deserialize(frameBytes);
    // send the data somewhere somehow...
}
Run Code Online (Sandbox Code Playgroud)

我想做的,但我在文档中找不到的是可以避免在每个上创建新字节数组的东西socket.Receive

byte[] frameBytes = new byte[123];
while (!isCancellationRequested)
{
    socket.ReceiveFrameBytes(frameBytes);
    MyData data = new MyData();
    data.Deserialize(frameBytes);
    // send the data somewhere somehow...
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

.net c# zeromq netmq

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